package com.vooda.service;

import com.vooda.dto.bo.TicketBo;
import com.vooda.dto.vo.BaseResult;
import com.vooda.dto.vo.HappyBagVo;
import com.vooda.dto.vo.MyTicketVo;
import com.vooda.dto.vo.TicketVo;

import java.util.List;

/**
 * @author KennyDavid
 */
public interface TicketService {

    /**
     * 获取商户的优惠券列表
     *
     * @param storeId 商户id
     * @return 封装类
     */
    BaseResult<List<TicketVo>> ticketList(Long storeId);

    /**
     * 获取我的优惠券
     *
     * @param userId 用户id
     * @param status 状态
     * @return 封装类
     */
    BaseResult<List<MyTicketVo>> myTicket(Long userId, Integer status);

    /**
     * 获取优惠券
     *
     * @param userId   用户id
     * @param ticketId 优惠券id
     * @return 封装类
     */
    BaseResult getTicket(Long userId, Long ticketId);

    /**
     * 领取福袋
     *
     * @param userId 用户id
     * @return 封装类
     */
    BaseResult<List<HappyBagVo>> happyBag(Long userId);

    /**
     * 扫码使优惠券过期
     *
     * @param ticketBo 请求表单
     * @param userId   用户id
     * @return 封装类
     */
    BaseResult scan(Long userId, TicketBo ticketBo);

    /**
     * 我的优惠券详情
     *
     * @param userId 用户id
     * @param ticketId 优惠券id
     * @return MyTicketVo
     */
    BaseResult<MyTicketVo> myTicketDetail(Long userId, Long ticketId);
}
